package aceim.app.view.page.contactlist; import ua.snuk182.expandablegrid.ExpandableGridView; import aceim.api.dataentity.Buddy; import aceim.api.dataentity.ConnectionState; import aceim.api.dataentity.OnlineInfo; import aceim.app.AceIMActivity; import aceim.app.R; import aceim.app.dataentity.Account; import aceim.app.dataentity.ProtocolResources; import aceim.app.utils.ViewUtils; import aceim.app.widgets.bottombar.ContactListBottomBar; import android.content.res.Resources; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public final class GridContactList extends ContactList { private ExpandableGridView mGridView; private ContactListBottomBar mBottomBar; private int mGridItemSize = 0; public GridContactList(Account account, ProtocolResources resources, Resources applicationResources) { super(account, resources, applicationResources); } @Override public void onConnectionStateChanged(ConnectionState connState, int extraParameter) { super.onConnectionStateChanged(connState, extraParameter); if (mBottomBar != null) { mBottomBar.onConnectionStateChanged(connState, extraParameter); } } @Override protected View onCreateContactListView(LayoutInflater inflater, ViewGroup group, Bundle saved) { if (mGridItemSize < 1) { initVariables((AceIMActivity)inflater.getContext()); } View view = inflater.inflate(R.layout.grid_contact_list, group, false); mGridView = (ExpandableGridView) view.findViewById(R.id.grid); mGridView.setAdapter(getAdapter()); mGridView.setColumnWidth(mGridItemSize); mBottomBar = (ContactListBottomBar) view.findViewById(R.id.bottom_bar); return view; } @Override public void onAccountIcon(byte serviceId) { ViewUtils.fillAccountPlaceholder(getMainActivity(), mAccount, mBottomBar, mProtocolResources); } @Override public void onBuddyIcon(byte serviceId, String protocolUid){ if (mGridView == null) { return; } Buddy b = mAccount.getBuddyByProtocolUid(protocolUid); if (b == null){ return; } View v = mGridView.findViewWithTag(b); if (v != null) { ViewUtils.fillIcon(R.id.image_icon, v, b.getFilename(), getMainActivity()); } } @Override public void onOnlineInfoChanged(OnlineInfo info) { super.onOnlineInfoChanged(info); ViewUtils.fillAccountPlaceholder(getMainActivity(), mAccount, mBottomBar, mProtocolResources); } @Override protected Class<? extends ContactListAdapter> getContactListAdapterClassName() { return GridContactListAdapter.class; } private void initVariables(AceIMActivity activity) { if (mGridItemSize < 1) { Resources themeResources = getMainActivity().getThemesManager().getCurrentThemeContext().getResources(); mGridItemSize = themeResources.getDimensionPixelSize(getMainActivity().getThemesManager().getViewResources().getGridItemSizeId()); } } }